package com.hsp.Demo_11_innerclass;

/*
    静态内部类的演示
 */
public class Outter09 {

    //静态私有成员
    private static int m1 = 1;
    //静态共有成员
    public static  int m2 = 2;

    //非静态私有成员
    private int m3 = 3;

    //非静态公共成员
    public int m4 = 4;

    //静态内部类
    public static class Inner09{
        private static int h1 = 1;

        private int h2 = 2;

        public void f1(){
            //访问外部类私有静态成员
            System.out.println(m1);
            //访问外部类公共静态成员
            System.out.println(m2);
            //访问外部类私有非静态成员
            //System.out.println(m3);  //报错，无法访问，静态内部类无法访问外部类的非静态资源
            //访问外部类公共的非静态成员
           // System.out.println(m4);  //报错，无法访问，静态内部类无法访问外部类的非静态资源
        }

    }

    public void f2(){
        //外部类访问内部类的静态资源， 直接通过   类名.静态属性名
        System.out.println(Inner09.h1);
        //外部类访问内部类的非静态资源：
        //System.out.println(Inner09.h2); //直接访问会报错，需通过对象来调用。
        Inner09 inner09 = new Inner09();
        System.out.println(inner09.h2);
    }

    public static void main(String[] args) {
        Outter09 outter09 = new Outter09();
        outter09.f2();
        System.out.println(Inner09.h1);
    }
}
